package Banco.DAO;

import Banco.Conexao.conexao3G;
import Banco.Conexao.conexaoPortal;
import Banco.Classes.Professor;
import Banco.Classes.Turma;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;

public class professorDAO {

    private conexaoPortal conectaPortal;
    private conexao3G conecta3g;
    private String matriculaBD;
    private String nivelAcesso;
    private String nomeBD;
    private String loginBD;
    private String senhaBD;
    Professor professor = new Professor();

    /**
     * Construtor
     */
    public professorDAO() {

        conectaPortal =conexaoPortal.getConexaoPortal();
        conecta3g = conexao3G.getConexao3G();
    }

//    public Professor getProfessorLogin(String matricula, String login, String senha) throws SQLException {
//
//        //conectaPortal.conecta();
//
//        String SQL_getProfessorLoginPortal = "SELECT * FROM professor WHERE " +
//                "matricula LIKE '%" + matricula + "%'";
//
//        ResultSet rs=conectaPortal.executeSql(SQL_getProfessorLoginPortal);
//        rs.first();
//        nomeBD = rs.getString("nome");
//
//         //conectaPortal.desconecta();
//        //conecta3g.conecta();
//
//        String SQL_getProfessorLogin3g = "SELECT * FROM professor WHERE " +
//                "Matricula LIKE '%" + matricula + "%'";
//
//       ResultSet rs3= conecta3g.executeSql(SQL_getProfessorLogin3g);
//        rs3.first();
//
//        //nivelAcesso = rs3.getString("nivelAcesso");
//
//        //conecta3g.desconecta();
//
//        professor.setLogin(login);
//        professor.setMatricula(matricula);
//        //professor.setNivelAcesso(nivelAcesso);
//        professor.setNome(nomeBD);
//        professor.setSenha(senha);
//
//        System.out.println("Login professor: " + login);
//        System.out.println("Senha professor: " + senha);
//        System.out.println("Matricula professor: " + matricula);
//        System.out.println("Nome professor: " + nomeBD);
//        //System.out.println("Nive de Acesso professor: " + nivelAcesso);
//
//        return professor;
//    }
    /**
     * Recupera um professor
     * @param matricula - Matricula do professor
     * @return Professor
     */
    public Professor getProfessor(String matricula) {
        //conectaPortal.conecta();
        Professor professor = new Professor();

        String tabela = "professor";
        String cadastro = "cadastro";
        String SQL_getAluno = "SELECT matricula, nome FROM " + tabela + " WHERE matricula = '" + matricula + "'";
        String SQL_getAluno2 = "SELECT login, senha FROM " + cadastro + " WHERE matricula = '" + matricula + "'";

        ResultSet rs = conectaPortal.executeSql(SQL_getAluno);

        try {
            while (rs.next()) {
                //Cria objeto Aluno dados portal
                professor.setMatricula(rs.getString("matricula"));
                professor.setNome(rs.getString("nome"));
            }
        } catch (SQLException ex) {
            Logger.getLogger(professorDAO.class.getName()).log(Level.SEVERE, null, ex);
        }
        ResultSet rs2=conectaPortal.executeSql(SQL_getAluno2);
        try {
            while (rs2.next()) {
                //Cria objeto Aluno dados portal
                professor.setLogin(rs2.getString("login"));
                professor.setSenha(rs2.getString("senha"));
            }
        } catch (SQLException ex) {
            Logger.getLogger(professorDAO.class.getName()).log(Level.SEVERE, null, ex);
        }


         //conectaPortal.desconecta();

        return professor;
    }

    public void setProfessor(String matricula, String nome){

         String SQL_InsertMensagem = "INSERT INTO professor(matricula, nome)" +
                " VALUES ('" + matricula + "', '" +nome + "')";

        System.out.println(SQL_InsertMensagem);
        
        conectaPortal.execute(SQL_InsertMensagem);
    
    }

    /**
     * Recupera todas as turmas que o professor ensina.
     * @param matricula - Matricula do professor
     * @return Lista com todas as turmas
     */
    public ArrayList<Turma> getTodasTurmas(String matricula) {
        ArrayList<Turma> listaTurmas = new ArrayList();
        //conectaPortal.conecta();
        String tabela = "turma";

        String SQL_getTurma = "SELECT * FROM " + tabela + " WHERE " +
                "professor_matricula = '" + matricula + "'";

        ResultSet rs=conectaPortal.executeSql(SQL_getTurma);
       
        try {
            while (rs.next()) {
                
                Turma turm = new Turma();
                turm.setCurso(rs.getString("curso"));
                turm.setDisciplina(rs.getString("disciplina"));
                turm.setPeriodo(rs.getString("periodo"));
                turm.setTurma(rs.getString("turma"));
                turm.setNome(rs.getString("nome"));
                turmaDAO turmDAO = new turmaDAO();
                //Procura no bd3g
                Turma turm3G = turmDAO.getTurma(turm.getPeriodo(), turm.getCurso(), turm.getTurma(), turm.getDisciplina());
                turm.setNumeroMSG(turm3G.getNumeroMSG());
                listaTurmas.add(turm);
            }
        } catch (SQLException ex) {
            Logger.getLogger(turmaDAO.class.getName()).log(Level.SEVERE, null, ex);
        }
         //conectaPortal.desconecta();
        return listaTurmas;
    }
}
